home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / Source / Darth Fader 1.0 Source / Darth Fader / a4 setup.h next >
Text File  |  1993-11-21  |  3KB  |  65 lines

  1. /**********************************************************************\
  2.  
  3. File:        a4 setup.h
  4.  
  5. Purpose:    This is an alternate header file instead of using "SetUpA4.h"
  6.             since that causes some technical problems in certain
  7.             circumstances.  The problems are solved by using this
  8.             shortened version and putting __GetA4() in the initialization
  9.             .c file instead.
  10.             
  11. Note:        This file was not written by the authors of Darth Fader
  12.             and is not subject to the terms of the GNU General Public
  13.             License.
  14.  
  15.  
  16. Darth Fader -=- fade in and out on system beep
  17. Copyright (C) 1993 Mark Pilgrim
  18.  
  19. This program is free software; you can redistribute it and/or modify
  20. it under the terms of the GNU General Public License as published by
  21. the Free Software Foundation; either version 2 of the License, or
  22. (at your option) any later version.
  23.  
  24. This program is distributed in the hope that it will be useful,
  25. but WITHOUT ANY WARRANTY; without even the implied warranty of
  26. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27. GNU General Public License for more details.
  28.  
  29. You should have received a copy of the GNU General Public License
  30. along with this program in a file named "GNU General Public License".
  31. If not, write to the Free Software Foundation, 675 Mass Ave,
  32. Cambridge, MA 02139, USA.
  33.  
  34. \**********************************************************************/
  35.  
  36. /*
  37.  *  SetUpA4.h
  38.  *
  39.  *  Copyright (c) 1991 Symantec Corporation.  All rights reserved.
  40.  *
  41.  *  This defines "SetUpA4()" and "RestoreA4()" routines that will work
  42.  *  in all A4-based projects.
  43.  *
  44.  *  "RememberA4()" or "RememberA0()" must be called in advance to
  45.  *  store away the value of A4 where it can be found by "SetUpA4()".
  46.  *  The matching calls to "RememberA4()" (or "RememberA0()") and
  47.  *  "SetUpA4()" *MUST* occur in the same file.
  48.  *
  49.  *  Note that "RememberA4()", "RememberA0()" "SetUpA4()", and
  50.  *  "RestoreA4()" are not external.  Each file that uses them must
  51.  *  include its own copy.
  52.  *
  53.  *  If this file is used in the main file of a code resource with
  54.  *  "Custom Headers", be sure to #include it *AFTER* the custom
  55.  *  header!  Otherwise, the code resource will begin with the code
  56.  *  for the function "__GetA4()", defined below.
  57.  *
  58.  */
  59.  
  60. #define RememberA4()    do { __GetA4(); asm { move.l a4,(a1) } } while (0)
  61. #define RememberA0()    do { __GetA4(); asm { move.l a0,(a1) } } while (0)
  62.  
  63. #define SetUpA4()        do { asm { move.l a4,-(sp) } __GetA4(); asm { move.l (a1),a4 } } while (0)
  64. #define RestoreA4()        do { asm { move.l (sp)+,a4 } } while (0)
  65.